<?xml version='1.0' encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <link href="cpip.css" rel="stylesheet" type="text/css" />
    <title>File: /Users/paulross/dev/linux/linux-3.13/include/linux/pm_wakeup.h</title>
  </head>
  <body>
    <h1>File: /Users/paulross/dev/linux/linux-3.13/include/linux/pm_wakeup.h</h1>
    <p>Green shading in the line number column
means the source is part of the translation unit, red means it is conditionally excluded.
Highlighted line numbers link to the translation unit page. Highlighted macros link to
the macro page.</p>
    <pre><a name="1" /><span class="True">       1:</span> <span class="k">/*</span>
<a name="2" /><span class="True">       2:</span> <span class="k"> *  pm_wakeup.h - Power management wakeup interface</span>
<a name="3" /><span class="True">       3:</span> <span class="k"> *</span>
<a name="4" /><span class="True">       4:</span> <span class="k"> *  Copyright (C) 2008 Alan Stern</span>
<a name="5" /><span class="True">       5:</span> <span class="k"> *  Copyright (C) 2010 Rafael J. Wysocki, Novell Inc.</span>
<a name="6" /><span class="True">       6:</span> <span class="k"> *</span>
<a name="7" /><span class="True">       7:</span> <span class="k"> *  This program is free software; you can redistribute it and/or modify</span>
<a name="8" /><span class="True">       8:</span> <span class="k"> *  it under the terms of the GNU General Public License as published by</span>
<a name="9" /><span class="True">       9:</span> <span class="k"> *  the Free Software Foundation; either version 2 of the License, or</span>
<a name="10" /><span class="True">      10:</span> <span class="k"> *  (at your option) any later version.</span>
<a name="11" /><span class="True">      11:</span> <span class="k"> *</span>
<a name="12" /><span class="True">      12:</span> <span class="k"> *  This program is distributed in the hope that it will be useful,</span>
<a name="13" /><span class="True">      13:</span> <span class="k"> *  but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
<a name="14" /><span class="True">      14:</span> <span class="k"> *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span>
<a name="15" /><span class="True">      15:</span> <span class="k"> *  GNU General Public License for more details.</span>
<a name="16" /><span class="True">      16:</span> <span class="k"> *</span>
<a name="17" /><span class="True">      17:</span> <span class="k"> *  You should have received a copy of the GNU General Public License</span>
<a name="18" /><span class="True">      18:</span> <span class="k"> *  along with this program; if not, write to the Free Software</span>
<a name="19" /><span class="True">      19:</span> <span class="k"> *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA</span>
<a name="20" /><span class="True">      20:</span> <span class="k"> */</span>
<a name="21" /><span class="True">      21:</span> 
<a name="22" /><span class="True">      22:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1BNX1dBS0VVUF9IXzA_"><span class="b">_LINUX_PM_WAKEUP_H</span></a>
<a name="23" /><span class="True">      23:</span> <span class="f">#</span><span class="n">define</span> <a href="cpu.c_macros_noref.html#_X0xJTlVYX1BNX1dBS0VVUF9IXzA_"><span class="b">_LINUX_PM_WAKEUP_H</span></a>
<a name="24" /><span class="True">      24:</span> 
<a name="25" /><span class="False">      25:</span> <span class="f">#</span><span class="n">ifndef</span> <a href="cpu.c_macros_ref.html#_X0RFVklDRV9IX18w"><span class="b">_DEVICE_H_</span></a>
<a name="26" /><span class="False">      26:</span> <span class="f">#</span> <span class="n">error</span> <span class="e">&quot;please don&apos;t include this file directly&quot;</span>
<a name="27" /><span class="True">      27:</span> <span class="f">#</span><span class="n">endif</span>
<a name="28" /><span class="True">      28:</span> 
<a name="29" /><span class="True">      29:</span> <span class="f">#</span><span class="n">include</span> <span class="f">&lt;</span><span class="b">linux</span><span class="f">/</span><span class="b">types</span><span class="f">.</span><span class="b">h</span><span class="f">&gt;</span>
<a name="30" /><span class="True">      30:</span> 
<a name="31" /><span class="True">      31:</span> <span class="k">/**</span>
<a name="32" /><span class="True">      32:</span> <span class="k"> * struct wakeup_source - Representation of wakeup sources</span>
<a name="33" /><span class="True">      33:</span> <span class="k"> *</span>
<a name="34" /><span class="True">      34:</span> <span class="k"> * @total_time: Total time this wakeup source has been active.</span>
<a name="35" /><span class="True">      35:</span> <span class="k"> * @max_time: Maximum time this wakeup source has been continuously active.</span>
<a name="36" /><span class="True">      36:</span> <span class="k"> * @last_time: Monotonic clock when the wakeup source&apos;s was touched last time.</span>
<a name="37" /><span class="True">      37:</span> <span class="k"> * @prevent_sleep_time: Total time this source has been preventing autosleep.</span>
<a name="38" /><span class="True">      38:</span> <span class="k"> * @event_count: Number of signaled wakeup events.</span>
<a name="39" /><span class="True">      39:</span> <span class="k"> * @active_count: Number of times the wakeup source was activated.</span>
<a name="40" /><span class="True">      40:</span> <span class="k"> * @relax_count: Number of times the wakeup source was deactivated.</span>
<a name="41" /><span class="True">      41:</span> <span class="k"> * @expire_count: Number of times the wakeup source&apos;s timeout has expired.</span>
<a name="42" /><span class="True">      42:</span> <span class="k"> * @wakeup_count: Number of times the wakeup source might abort suspend.</span>
<a name="43" /><span class="True">      43:</span> <span class="k"> * @active: Status of the wakeup source.</span>
<a name="44" /><span class="True">      44:</span> <span class="k"> * @has_timeout: The wakeup source has been activated with a timeout.</span>
<a name="45" /><span class="True">      45:</span> <span class="k"> */</span>
<a name="46" /><span class="True">      46:</span> <span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">{</span>
<a name="47" /><span class="True">      47:</span>     <span class="m">const</span> <span class="m">char</span>         <span class="f">*</span><span class="b">name</span><span class="f">;</span>
<a name="48" /><span class="True">      48:</span>     <span class="m">struct</span> <span class="b">list_head</span>    <span class="b">entry</span><span class="f">;</span>
<a name="49" /><span class="True">      49:</span>     <span class="b">spinlock_t</span>        <span class="b">lock</span><span class="f">;</span>
<a name="50" /><span class="True">      50:</span>     <span class="m">struct</span> <span class="b">timer_list</span>    <span class="b">timer</span><span class="f">;</span>
<a name="51" /><span class="True">      51:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">timer_expires</span><span class="f">;</span>
<a name="52" /><span class="True">      52:</span>     <span class="b">ktime_t</span> <span class="b">total_time</span><span class="f">;</span>
<a name="53" /><span class="True">      53:</span>     <span class="b">ktime_t</span> <span class="b">max_time</span><span class="f">;</span>
<a name="54" /><span class="True">      54:</span>     <span class="b">ktime_t</span> <span class="b">last_time</span><span class="f">;</span>
<a name="55" /><span class="True">      55:</span>     <span class="b">ktime_t</span> <span class="b">start_prevent_time</span><span class="f">;</span>
<a name="56" /><span class="True">      56:</span>     <span class="b">ktime_t</span> <span class="b">prevent_sleep_time</span><span class="f">;</span>
<a name="57" /><span class="True">      57:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">event_count</span><span class="f">;</span>
<a name="58" /><span class="True">      58:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">active_count</span><span class="f">;</span>
<a name="59" /><span class="True">      59:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">relax_count</span><span class="f">;</span>
<a name="60" /><span class="True">      60:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">expire_count</span><span class="f">;</span>
<a name="61" /><span class="True">      61:</span>     <span class="m">unsigned</span> <span class="m">long</span>        <span class="b">wakeup_count</span><span class="f">;</span>
<a name="62" /><span class="True">      62:</span>     <span class="m">bool</span>            <span class="b">active</span><span class="f">:</span><span class="c">1</span><span class="f">;</span>
<a name="63" /><span class="True">      63:</span>     <span class="m">bool</span>            <span class="b">autosleep_enabled</span><span class="f">:</span><span class="c">1</span><span class="f">;</span>
<a name="64" /><span class="True">      64:</span> <span class="f">}</span><span class="f">;</span>
<a name="65" /><span class="True">      65:</span> 
<a name="66" /><span class="True">      66:</span> <span class="f">#</span><span class="n">ifdef</span> <a href="cpu.c_macros_ref.html#_Q09ORklHX1BNX1NMRUVQXzA_"><span class="b">CONFIG_PM_SLEEP</span></a>
<a name="67" /><span class="True">      67:</span> 
<a name="68" /><span class="True">      68:</span> <span class="k">/*</span>
<a name="69" /><span class="True">      69:</span> <span class="k"> * Changes to device_may_wakeup take effect on the next pm state change.</span>
<a name="70" /><span class="True">      70:</span> <span class="k"> */</span>
<a name="71" /><span class="True">      71:</span> 
<a name="72" /><span class="True">      72:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">bool</span> <span class="b">device_can_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="73" /><span class="True">      73:</span> <span class="f">{</span>
<a name="74" /><span class="True">      74:</span>     <span class="m">return</span> <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">can_wakeup</span><span class="f">;</span>
<a name="75" /><span class="True">      75:</span> <span class="f">}</span>
<a name="76" /><span class="True">      76:</span> 
<a name="77" /><span class="True">      77:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">bool</span> <span class="b">device_may_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="78" /><span class="True">      78:</span> <span class="f">{</span>
<a name="79" /><span class="True">      79:</span>     <span class="m">return</span> <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">can_wakeup</span> <span class="f">&amp;&amp;</span> <span class="f">!</span><span class="f">!</span><span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">wakeup</span><span class="f">;</span>
<a name="80" /><span class="True">      80:</span> <span class="f">}</span>
<a name="81" /><span class="True">      81:</span> 
<a name="82" /><span class="True">      82:</span> <span class="k">/* drivers/base/power/wakeup.c */</span>
<a name="83" /><span class="True">      83:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_prepare</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">,</span> <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="84" /><span class="True">      84:</span> <span class="m">extern</span> <span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">wakeup_source_create</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="85" /><span class="True">      85:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_drop</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="86" /><span class="True">      86:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_destroy</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="87" /><span class="True">      87:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_add</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="88" /><span class="True">      88:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_remove</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="89" /><span class="True">      89:</span> <span class="m">extern</span> <span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">wakeup_source_register</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="90" /><span class="True">      90:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">wakeup_source_unregister</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="91" /><span class="True">      91:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">device_wakeup_enable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span><span class="f">;</span>
<a name="92" /><span class="True">      92:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">device_wakeup_disable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span><span class="f">;</span>
<a name="93" /><span class="True">      93:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">device_set_wakeup_capable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">capable</span><span class="f">)</span><span class="f">;</span>
<a name="94" /><span class="True">      94:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">device_init_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="95" /><span class="True">      95:</span> <span class="m">extern</span> <span class="m">int</span> <span class="b">device_set_wakeup_enable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">enable</span><span class="f">)</span><span class="f">;</span>
<a name="96" /><span class="True">      96:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">__pm_stay_awake</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="97" /><span class="True">      97:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">pm_stay_awake</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span><span class="f">;</span>
<a name="98" /><span class="True">      98:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">__pm_relax</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="99" /><span class="True">      99:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">pm_relax</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span><span class="f">;</span>
<a name="100" /><span class="True">     100:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">__pm_wakeup_event</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">msec</span><span class="f">)</span><span class="f">;</span>
<a name="101" /><span class="True">     101:</span> <span class="m">extern</span> <span class="m">void</span> <span class="b">pm_wakeup_event</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">msec</span><span class="f">)</span><span class="f">;</span>
<a name="102" /><span class="True">     102:</span> 
<a name="103" /><span class="False">     103:</span> <span class="f">#</span><span class="n">else</span> <span class="k">/* !CONFIG_PM_SLEEP */</span>
<a name="104" /><span class="False">     104:</span> 
<a name="105" /><span class="False">     105:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">device_set_wakeup_capable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">capable</span><span class="f">)</span>
<a name="106" /><span class="False">     106:</span> <span class="f">{</span>
<a name="107" /><span class="False">     107:</span>     <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">can_wakeup</span> <span class="f">=</span> <span class="b">capable</span><span class="f">;</span>
<a name="108" /><span class="False">     108:</span> <span class="f">}</span>
<a name="109" /><span class="False">     109:</span> 
<a name="110" /><span class="False">     110:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">bool</span> <span class="b">device_can_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="111" /><span class="False">     111:</span> <span class="f">{</span>
<a name="112" /><span class="False">     112:</span>     <span class="m">return</span> <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">can_wakeup</span><span class="f">;</span>
<a name="113" /><span class="False">     113:</span> <span class="f">}</span>
<a name="114" /><span class="False">     114:</span> 
<a name="115" /><span class="False">     115:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_prepare</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">,</span>
<a name="116" /><span class="False">     116:</span>                      <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="117" /><span class="False">     117:</span> 
<a name="118" /><span class="False">     118:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">wakeup_source_create</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span>
<a name="119" /><span class="False">     119:</span> <span class="f">{</span>
<a name="120" /><span class="False">     120:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a><span class="f">;</span>
<a name="121" /><span class="False">     121:</span> <span class="f">}</span>
<a name="122" /><span class="False">     122:</span> 
<a name="123" /><span class="False">     123:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_drop</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="124" /><span class="False">     124:</span> 
<a name="125" /><span class="False">     125:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_destroy</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="126" /><span class="False">     126:</span> 
<a name="127" /><span class="False">     127:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_add</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="128" /><span class="False">     128:</span> 
<a name="129" /><span class="False">     129:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_remove</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="130" /><span class="False">     130:</span> 
<a name="131" /><span class="False">     131:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">wakeup_source_register</span><span class="f">(</span><span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span>
<a name="132" /><span class="False">     132:</span> <span class="f">{</span>
<a name="133" /><span class="False">     133:</span>     <span class="m">return</span> <a href="cpu.c_macros_ref.html#_TlVMTF8w"><span class="b">NULL</span></a><span class="f">;</span>
<a name="134" /><span class="False">     134:</span> <span class="f">}</span>
<a name="135" /><span class="False">     135:</span> 
<a name="136" /><span class="False">     136:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_unregister</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="137" /><span class="False">     137:</span> 
<a name="138" /><span class="False">     138:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">device_wakeup_enable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="139" /><span class="False">     139:</span> <span class="f">{</span>
<a name="140" /><span class="False">     140:</span>     <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">should_wakeup</span> <span class="f">=</span> <span class="m">true</span><span class="f">;</span>
<a name="141" /><span class="False">     141:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="142" /><span class="False">     142:</span> <span class="f">}</span>
<a name="143" /><span class="False">     143:</span> 
<a name="144" /><span class="False">     144:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">device_wakeup_disable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="145" /><span class="False">     145:</span> <span class="f">{</span>
<a name="146" /><span class="False">     146:</span>     <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">should_wakeup</span> <span class="f">=</span> <span class="m">false</span><span class="f">;</span>
<a name="147" /><span class="False">     147:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="148" /><span class="False">     148:</span> <span class="f">}</span>
<a name="149" /><span class="False">     149:</span> 
<a name="150" /><span class="False">     150:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">device_set_wakeup_enable</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">enable</span><span class="f">)</span>
<a name="151" /><span class="False">     151:</span> <span class="f">{</span>
<a name="152" /><span class="False">     152:</span>     <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">should_wakeup</span> <span class="f">=</span> <span class="b">enable</span><span class="f">;</span>
<a name="153" /><span class="False">     153:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="154" /><span class="False">     154:</span> <span class="f">}</span>
<a name="155" /><span class="False">     155:</span> 
<a name="156" /><span class="False">     156:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">int</span> <span class="b">device_init_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">bool</span> <span class="b">val</span><span class="f">)</span>
<a name="157" /><span class="False">     157:</span> <span class="f">{</span>
<a name="158" /><span class="False">     158:</span>     <span class="b">device_set_wakeup_capable</span><span class="f">(</span><span class="b">dev</span><span class="f">,</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="159" /><span class="False">     159:</span>     <span class="b">device_set_wakeup_enable</span><span class="f">(</span><span class="b">dev</span><span class="f">,</span> <span class="b">val</span><span class="f">)</span><span class="f">;</span>
<a name="160" /><span class="False">     160:</span>     <span class="m">return</span> <span class="c">0</span><span class="f">;</span>
<a name="161" /><span class="False">     161:</span> <span class="f">}</span>
<a name="162" /><span class="False">     162:</span> 
<a name="163" /><span class="False">     163:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">bool</span> <span class="b">device_may_wakeup</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span>
<a name="164" /><span class="False">     164:</span> <span class="f">{</span>
<a name="165" /><span class="False">     165:</span>     <span class="m">return</span> <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">can_wakeup</span> <span class="f">&amp;&amp;</span> <span class="b">dev</span><span class="f">-&gt;</span><span class="b">power</span><span class="f">.</span><span class="b">should_wakeup</span><span class="f">;</span>
<a name="166" /><span class="False">     166:</span> <span class="f">}</span>
<a name="167" /><span class="False">     167:</span> 
<a name="168" /><span class="False">     168:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">__pm_stay_awake</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="169" /><span class="False">     169:</span> 
<a name="170" /><span class="False">     170:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">pm_stay_awake</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="171" /><span class="False">     171:</span> 
<a name="172" /><span class="False">     172:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">__pm_relax</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="173" /><span class="False">     173:</span> 
<a name="174" /><span class="False">     174:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">pm_relax</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="175" /><span class="False">     175:</span> 
<a name="176" /><span class="False">     176:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">__pm_wakeup_event</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">msec</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="177" /><span class="False">     177:</span> 
<a name="178" /><span class="False">     178:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">pm_wakeup_event</span><span class="f">(</span><span class="m">struct</span> <span class="b">device</span> <span class="f">*</span><span class="b">dev</span><span class="f">,</span> <span class="m">unsigned</span> <span class="m">int</span> <span class="b">msec</span><span class="f">)</span> <span class="f">{</span><span class="f">}</span>
<a name="179" /><span class="False">     179:</span> 
<a name="180" /><span class="True">     180:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* !CONFIG_PM_SLEEP */</span>
<a name="181" /><span class="True">     181:</span> 
<a name="182" /><span class="True">     182:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_init</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">,</span>
<a name="183" /><span class="True">     183:</span>                       <span class="m">const</span> <span class="m">char</span> <span class="f">*</span><span class="b">name</span><span class="f">)</span>
<a name="184" /><span class="True">     184:</span> <span class="f">{</span>
<a name="185" /><span class="True">     185:</span>     <span class="b">wakeup_source_prepare</span><span class="f">(</span><span class="b">ws</span><span class="f">,</span> <span class="b">name</span><span class="f">)</span><span class="f">;</span>
<a name="186" /><span class="True">     186:</span>     <span class="b">wakeup_source_add</span><span class="f">(</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="187" /><span class="True">     187:</span> <span class="f">}</span>
<a name="188" /><span class="True">     188:</span> 
<a name="189" /><span class="True">     189:</span> <span class="m">static</span> <span class="m">inline</span> <span class="m">void</span> <span class="b">wakeup_source_trash</span><span class="f">(</span><span class="m">struct</span> <span class="b">wakeup_source</span> <span class="f">*</span><span class="b">ws</span><span class="f">)</span>
<a name="190" /><span class="True">     190:</span> <span class="f">{</span>
<a name="191" /><span class="True">     191:</span>     <span class="b">wakeup_source_remove</span><span class="f">(</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="192" /><span class="True">     192:</span>     <span class="b">wakeup_source_drop</span><span class="f">(</span><span class="b">ws</span><span class="f">)</span><span class="f">;</span>
<a name="193" /><span class="True">     193:</span> <span class="f">}</span>
<a name="194" /><span class="True">     194:</span> 
<a name="195" /><span class="True">     195:</span> <span class="f">#</span><span class="n">endif</span> <span class="k">/* _LINUX_PM_WAKEUP_H */</span>
<a name="196" /><span class="True">     196:</span> </pre>
  </body>
</html>
